package com.regexdemo;

public class RegexDemo3 {
    public static void main(String[] args) {
        //   \   转义字符  改变后面那个字符原本的含义
        //练习:以字符串的形式打印一个双引号
        //"在ava中表示字符串的开头或者结尾

        //此时\表示转义字符，改变了后面那个双引号原本的含义
        //把他变成了一个普普通通的双引号而已。
        // \ 表示转义字符
        // \\ 前面的\是一个转义字符，改变了后面\原本的含义，把他变成一个普普通通的\而已。
        System.out.println("\"");


        //. 表示任意一个字符
        System.out.println("======1======");
        System.out.println("你".matches(".."));//false
        System.out.println("你".matches("."));//true
        System.out.println("你a".matches(".."));//true

        //\\d 表示任意一个数字
        //简单来记:两个\表示一个、
        System.out.println("======2======");
        System.out.println("a".matches("\\d"));//false
        System.out.println("3".matches("\\d"));//true
        System.out.println("333".matches("\\d"));//false
        System.out.println("333".matches("\\d\\d\\d"));//false

        //\\w表示任意一个单词字符[a-zA-Z_0-9]
        System.out.println("======3======");
        System.out.println("z".matches("\\w"));//true
        System.out.println("2".matches("\\w"));//true
        System.out.println("21".matches("\\w"));//false
        System.out.println("你".matches("\\w"));//false
        System.out.println("_".matches("\\w"));//true

        //\\W表示任意一个非单词字符[^a-zA-Z_0-9]
        System.out.println("======4======");
        System.out.println("z".matches("\\W"));//false
        System.out.println("2".matches("\\W"));//false
        System.out.println("21".matches("\\W"));//false
        System.out.println("你".matches("\\W"));//true
        System.out.println("_".matches("\\W"));//false

        //必须是数字  字母 下划线 至少6位
        System.out.println("======5======");
        System.out.println("2662ababa".matches("\\w{6,}"));//true
        System.out.println("266a".matches("\\w{6,}"));//false

        //必须是数字和字符 至少4位
        System.out.println("======6======");
        System.out.println("23Df".matches("[a-zA-Z0-9]{4}"));//true
        System.out.println("23_f".matches("[a-zA-Z0-9]{4}"));//false
        System.out.println("23Df".matches("[\\w&&[^_]]{4}"));//true
        System.out.println("23_f".matches("[\\w&&[^_]]{4}"));//false
    }
}
